The TCP (Transmission Control Protocol, Transmission Control Protocol) is a most widely-used transport layer protocol on the Internet. The TCP may resolve problems such as fairness, utilization efficiency, and congestion control of bandwidth sharing among data streams on the Internet, so as to provide reliable and robust (robust) end-to-end communication for the Internet.
Congestion control is a core function of the TCP protocol. Communications channels and buffer storage space of an Internet-based switch are generally resources shared by all hosts on a network and are also a potential bottleneck of a network system. As the number of hosts and the number of services continuously increase, competition for a resource may occur, thereby causing congestion on a network. Executing a set of algorithms for congestion control and congestion restoration is an important part of the TCP. A purpose of a TCP congestion control algorithm is to maximize use of network bandwidth and control a congestion phenomenon not to occur in a data transmission process.
An IETF (Internet Engineering Task Force, Internet Engineering Task Force) congestion control standard has proposed some universal algorithms. However, in a specific application, there are many problems because of a complex and changeable network environment. At present, although many improved TCP congestion control algorithms (such as: FastTcp/Westwood+/NewReno) and parameters (such as: SACK/FACK/Limited Transmit) have been proposed for these problems, each congestion control algorithm is designed only for a specific network environment; therefore, after the network environment changes, a previously configured congestion control algorithm and parameters may not be applicable to the new network environment, which causes a low utilization rate of network bandwidth and low TCP transmission efficiency.